.self 跟 .Type 傻傻分不清
Int.Type 是 Int 的元类型(),而 Int.Type 跟 Int.self 的关系,就是 Int 跟 5 的关系,一个是类型,一个是值
什么是元类型?
我们通过元类型,去调用这个类的 static 方法,个人感觉,有点像 oc 被类对象的 isa 指针所指向的 meta Class
1 | Int.max |
protocol.Type?
首先 protocol 不是一个类型,只有他被一个类实现了,才具有元类型这个说法
show me the code
1 |
|
type(of:) 跟 .self
相同点:都是获取 metaType (元类型)
不同点:type(of: value)
, 其中参数value 是个对象实例,主要用于动态获取 value 的 元类型;而 XXX.self 是静态获取 XXX 的元类型,其中 XXX 是个类
1 | var testString = "123" |
Self
在协议中用得比较多用来表示遵循这个协议的对象
这里用例子自定义命名空间的例子来说明一下(仿照rxSwift)
1 | /* |